//Tuesday, December 08 2009
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <queue>
#include <sstream>
#include <algorithm>

using namespace std;

class RelativePath
{
public:
	string makeRelative(string path, string currentDir)
	{
		vector<string> des;
		vector<string> src;
		string temp;
		for(int i=0; i<path.size(); i++)
		{
			if(path[i]=='/')
			{
				if(0 != temp.size())
				{
					des.push_back(temp);
					temp.clear();
				}
			}
			else
				temp += path[i];
		}
		if(0!=temp.size())
			des.push_back(temp);
		temp.clear();
		for(int i=0; i<currentDir.size(); i++)
		{
			if(currentDir[i]=='/')
			{
				if(0!=temp.size())
				{
					src.push_back(temp);
					temp.clear();
				}
			}
			else
				temp += currentDir[i];
		}
		if(0!=temp.size())
			src.push_back(temp);
		cout << des.size() << ", " << src.size() << endl;
		int start = 0;
		for(; start <min(des.size(), src.size()); start++)
			if(des[start] != src[start])
				break;

		string ret = "";
		for(int i=0; i<src.size()-start; i++)
			ret += "../";
		for(int i=start; i<des.size(); i++)
		{
			if(i != des.size()-1)
				ret += des[i] + "/";
			else
				ret += des[i];
		}
		return ret;
	}
};
